module.exports = {
    mode: 'none',
    entry: './src/index.js',
    output: {
      filename: 'bundle.js'
    },
    module: {
        rules: [
          {
            test: /\.js$/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: [
                  // 如果 Babel 加载模块时已经转换了 ESM，则会导致 Tree Shaking 失效
                  // ['@babel/preset-env', { modules: 'commonjs' }]
                  // ['@babel/preset-env', { modules: false }]
                  // 也可以使用默认配置，也就是 auto，这样 babel-loader 会自动关闭 ESM 转换
                  ['@babel/preset-env', { modules: 'auto' }]
                ]
              }
            }
          }
        ]
    },
    optimization: {
      // 模块只导出被使用的成员
      usedExports: true,
      // 尽可能合并每一个模块到一个函数中
      concatenateModules: true,
      // 压缩输出结果
      // minimize: true
    }
  }
  